# config.py
import os
from dotenv import load_dotenv

load_dotenv()

class Config:
    """应用程序配置类"""
    # 数据库配置
    MYSQL_HOST = os.getenv('MYSQL_HOST', 'localhost')
    MYSQL_PORT = int(os.getenv('MYSQL_PORT', 3306))
    MYSQL_USER = os.getenv('MYSQL_USER', 'root')
    MYSQL_PASSWORD = os.getenv('MYSQL_PASSWORD', 'root')
    MYSQL_DB = os.getenv('MYSQL_DB', 'asean_align_db')

    # SQLAlchemy 要求的 URI 格式 - 使用环境变量构建，避免硬编码
    SQLALCHEMY_DATABASE_URI = f'mysql+pymysql://{MYSQL_USER}:{MYSQL_PASSWORD}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DB}?charset=utf8mb4'
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    
    # JWT配置
    JWT_SECRET_KEY = os.getenv('JWT_SECRET_KEY', 'dev-secret-key-change-in-production-2024')
    
    # 文件上传配置
    #os.path.abspath(__file__) 获取当前文件的绝对路径，
    # os.path.dirname(__file__) 获取当前文件的目录，然后拼接成完整的路径
    UPLOAD_FOLDER = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'static', 'avatar')
    MAX_CONTENT_LENGTH = 16 * 1024 * 1024  # 16MB
    
    # Flask配置
    SECRET_KEY = os.getenv('SECRET_KEY', 'dev-flask-secret-key-change-in-production')

class DevelopmentConfig(Config):
    """开发环境配置"""
    DEBUG = True

class ProductionConfig(Config):
    """生产环境配置"""
    DEBUG = False

# 默认配置
config_by_name = {
    'development': DevelopmentConfig,
    'production': ProductionConfig,
    'default': DevelopmentConfig
}